<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:mt="http://www.geo-solutions.it/smartappschema/1.0" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.geo-solutions.it/smartappschema/1.0" version="1.0">
  <xs:import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd" />
  <xs:complexType name="MeteoParametersType">
    <xs:complexContent>
      <xs:extension base="gml:AbstractFeatureType">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="id" type="xs:int" />
          <xs:element maxOccurs="1" minOccurs="0" name="param_name" type="xs:string" />
          <xs:element maxOccurs="1" minOccurs="0" name="param_unit" type="xs:string" />
          <xs:element maxOccurs="unbounded" minOccurs="0" name="meteoObservations" type="mt:MeteoObservationsPropertyType" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="MeteoParametersFeature" substitutionGroup="gml:AbstractFeature" type="mt:MeteoParametersType" />
  <xs:complexType name="MeteoObservationsType">
    <xs:complexContent>
      <xs:extension base="gml:AbstractFeatureType">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="id" type="xs:int" />
          <xs:element maxOccurs="1" minOccurs="0" name="time" type="xs:dateTime" />
          <xs:element maxOccurs="1" minOccurs="0" name="value" type="xs:double" />
          <xs:element maxOccurs="1" minOccurs="0" name="decimal_value" type="xs:double" />
          <xs:element maxOccurs="unbounded" minOccurs="0" name="meteoStations" type="mt:MeteoStationsPropertyType" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="MeteoObservationsFeature" substitutionGroup="gml:AbstractFeature" type="mt:MeteoObservationsType" />
  <xs:complexType name="MeteoObservationsPropertyType">
    <xs:sequence minOccurs="0">
      <xs:element ref="mt:MeteoObservationsFeature" />
    </xs:sequence>
    <xs:attributeGroup ref="gml:AssociationAttributeGroup" />
  </xs:complexType>
  <xs:complexType name="MeteoStationsType">
    <xs:complexContent>
      <xs:extension base="gml:AbstractFeatureType">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="id" type="xs:int" />
          <xs:element maxOccurs="1" minOccurs="0" name="code" type="xs:string" />
          <xs:element maxOccurs="1" minOccurs="0" name="common_name" type="xs:string" />
          <xs:element maxOccurs="1" minOccurs="0" name="position" type="gml:GeometryPropertyType" />
          <xs:element maxOccurs="unbounded" minOccurs="0" name="meteoStationsMaintainers" type="mt:MeteoStationsMaintainersPropertyType" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="MeteoStationsFeature" substitutionGroup="gml:AbstractFeature" type="mt:MeteoStationsType" />
  <xs:complexType name="MeteoStationsPropertyType">
    <xs:sequence minOccurs="0">
      <xs:element ref="mt:MeteoStationsFeature" />
    </xs:sequence>
    <xs:attributeGroup ref="gml:AssociationAttributeGroup" />
  </xs:complexType>
  <xs:complexType name="MeteoStationsMaintainersType">
    <xs:complexContent>
      <xs:extension base="gml:AbstractFeatureType">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="id" type="xs:int" />
          <xs:element maxOccurs="unbounded" minOccurs="0" name="meteoMaintainers" type="mt:MeteoMaintainersPropertyType" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="MeteoStationsMaintainersFeature" substitutionGroup="gml:AbstractFeature" type="mt:MeteoStationsMaintainersType" />
  <xs:complexType name="MeteoStationsMaintainersPropertyType">
    <xs:sequence minOccurs="0">
      <xs:element ref="mt:MeteoStationsMaintainersFeature" />
    </xs:sequence>
    <xs:attributeGroup ref="gml:AssociationAttributeGroup" />
  </xs:complexType>
  <xs:complexType name="MeteoMaintainersType">
    <xs:complexContent>
      <xs:extension base="gml:AbstractFeatureType">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="id" type="xs:int" />
          <xs:element maxOccurs="1" minOccurs="0" name="name" type="xs:string" />
          <xs:element maxOccurs="1" minOccurs="0" name="surname" type="xs:string" />
          <xs:element maxOccurs="1" minOccurs="0" name="company" type="xs:string" />
          <xs:element maxOccurs="1" minOccurs="0" name="active" type="xs:boolean" />
          <xs:element maxOccurs="1" minOccurs="0" name="place" type="gml:GeometryPropertyType" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="MeteoMaintainersFeature" substitutionGroup="gml:AbstractFeature" type="mt:MeteoMaintainersType" />
  <xs:complexType name="MeteoMaintainersPropertyType">
    <xs:sequence minOccurs="0">
      <xs:element ref="mt:MeteoMaintainersFeature" />
    </xs:sequence>
    <xs:attributeGroup ref="gml:AssociationAttributeGroup" />
  </xs:complexType>
</xs:schema>